/* 
 * File:   Logger.h
 * Author: jcrada
 *
 * Created on August 24, 2008, 4:09 PM
 */

#ifndef _LOGGER_H
#define	_LOGGER_H

#include <log4cxx/log4cxx.h>
#include <log4cxx/helpers/pool.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/fileappender.h>
#include <log4cxx/simplelayout.h>
#include <string>
#include "StringUtil.h"
#include "defs.h"

namespace jcrada {

    class Logger {
    private:
        log4cxx::FileAppender * _file_appender;
        log4cxx::LoggerPtr _verbose;
        log4cxx::LoggerPtr _plain;
        static Logger INSTANCE;
        Logger( );
        virtual ~Logger( );
        DISALLOW_COPY_AND_ASSIGN(Logger);
    protected:

    public:
        static Logger& instance( );
        static log4cxx::LoggerPtr& VERBOSE( );
        static log4cxx::LoggerPtr& PLAIN( );
        virtual log4cxx::LoggerPtr& verboseLogger( );
        virtual log4cxx::LoggerPtr& plainLogger( );
        virtual void test( );
        //        void log(log4cxx::LevelPtr level, std::string message);
        //
        //        void logError(std::string message);
        //        void logWarn(std::string message);
        //        void logInfo(std::string message);
        //        void logFatal(std::string message);
        //        void logDebug(std::string message);
    };
}

#endif	/* _LOGGER_H */

